package com.jjh.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.jjh.common.util.PageInfoUtil;
import com.jjh.users.pojo.AAdmins;
import com.jjh.users.pojo.ALog;
import com.jjh.users.pojo.ARole;
import com.jjh.users.pojo.AStatRes;

/**
 * 用户模块Service接口(带Db的只负责数据库表的crud)
 * 
 * @author Zjx
 */
public interface IUsersDbService
{
	/*====角色操作开始====*/
	/**
	 * 保存一条角色
	 * @param role	角色
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneRoleService(ARole role);
	
	/**
	 * 更新一条角色
	 * @param role
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneRoleService(ARole role);
	
	/**
	 * 删除一条角色
	 * @param role
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneRoleService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	ARole findOneRoleService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<ARole> findCondListRoleService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*====角色操作结束====*/
	
	
	/*====管理员操作开始====*/
	/**
	 * 保存一条管理员
	 * @param admins	管理员
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneAdminsService(AAdmins admins);
	
	/**
	 * 更新一条管理员
	 * @param admins
	 * @return
{
    // 响应码
	"code":"0",
	//响应信息
	"info":"成功",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneAdminsService(AAdmins admins);
	
	/**
	 * 更新一条管理员,上传图片
	 * @param admins
	 * @param fileMap
	 * @return
	 */
	JSONObject updateOneAdminsService(AAdmins admins, Map<String, Object> fileMap);
	
	/**
	 * 删除一条管理员
	 * @param admins
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneAdminsService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	AAdmins findOneAdminsService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*====管理员操作结束====*/
	
	
	/*====日志操作开始====*/
	/**
	 * 保存一条日志
	 * @param log	日志
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneLogService(ALog log);
	
	/**
	 * 更新一条日志
	 * @param log
	 * @return
{
    // 响应码
	"code":"0",
	//响应信息
	"info":"成功",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneLogService(ALog log);
	
	/**
	 * 删除一条日志
	 * @param log
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneLogService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	ALog findOneLogService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<ALog> findCondListLogService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	
	
	/**
	 * 统计log
	 * @param condMap
	 * @return
	 */
	List<Map<String,Object>> statLogListService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	/*====日志操作结束====*/
	
	/*====结果操作开始====*/
	/**
	 * 保存一条结果
	 * @param statRes	结果
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneStatResService(AStatRes statRes);
	
	/**
	 * 更新一条结果
	 * @param statRes
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneStatResService(AStatRes statRes);
	
	/**
	 * 删除一条结果
	 * @param statRes
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneStatResService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	AStatRes findOneStatResService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<AStatRes> findCondListStatResService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*====结果操作结束====*/
	
}
